package com.example.flyweight;

/**
 * 具体享元类 - 圆形
 * 存储内部状态（不可变），外部状态由客户端传入
 */
public class Circle implements Shape {
    
    // 内部状态 - 这些属性在所有Circle实例中共享
    private final String type;
    private final int radius;
    
    public Circle(int radius) {
        this.type = "圆形";
        this.radius = radius;
        System.out.println("创建新的圆形对象，半径: " + radius);
    }
    
    @Override
    public void draw(int x, int y, String color) {
        System.out.println(String.format(
            "绘制%s - 位置: (%d, %d), 半径: %d, 颜色: %s", 
            type, x, y, radius, color
        ));
    }
    
    // Getter方法
    public String getType() {
        return type;
    }
    
    public int getRadius() {
        return radius;
    }
}
